For latency critical multimedia data (e.g., video/audio) communication, typically, uncompressed or raw data transmission has been used. However, such systems may have limitations in terms of bandwidth requirement, transmission distance, and the like. Further, integrating such systems with other digital systems, such as media gateways and storage devices, can be a challenge. Transmission of compressed data can address the limitations pertaining to raw data transmission. Transmission of compressed data can also enable integration of such systems with other digital systems such as media gateways, storage devices and the like. Processes, such as sampling of analog signals, grouping of samples for encoding, encoding, transmission of encoded data, decoding, and rendering, used in the compressed data transmission can affect the end-to-end transmission latency.
In systems where a multimedia stream (e.g., digital data) is encoded by a transmitting device (e.g., server) and transmitted in packets of the multimedia stream, and decoded by a receiving device (e.g., client), the transmitting device may receive data that includes digital samples of analog signals. Each digital sample may be of a specific size (e.g., 16 bits). A sampling rate represents the number of samples taken per unit of time (e.g., seconds, milliseconds). The transmitting device groups the samples into the packets for transmission to the receiving device.
Source clock, transmission device clocks, and receiving device clocks are major clock components of such transmission systems. Further, the transmission device clocks include a clock for pre-processing, clock for encoding, and clock for streaming. In some transmission devices, all these clocks may be derived from a common transmitting device system clock. Further, receiver device clocks include a network receive clock, decoder clock, post-processing clock, and output clock. In some receiving devices, all these clocks may be derived from a common receiving device system clock.
In some transmission systems where the source is tightly coupled with the transmission system, all clocks involved may be synchronized with the source clock, thus eliminating all clock drift problems. In such systems, the encoder system clock is synchronized with source clock using phase locked loops (PLLs). All other clocks for the encoder are derived from encoder system clock. All decoder clocks are derived from a decoder system clock. Decoder system clock is synchronized with encoder system clock. System clock references (SCRs) (as described in Generic Coding of Moving Pictures and Associated Audio: Systems, Recommendation H.222.0, ISO/IEC 13818-1, Apr. 25, 1995 (“MPEG-2 Specification”)), precision time protocol (PTP), and network time protocol (NTP) are examples of mechanisms used for synchronizing encoder and decoder system clocks.
Synchronization of all clocks in a transmission system may not be always feasible. This may occur, for example, when source is independent of the transmission system. This may also occur when a processor based system is used as the encoder/decoder (for example, in a personal computer system employing an audio card to decode digital audio signals, where many different components of personal computers may have their own clocks, and there is no synthesized clock present in the personal computer system. Audio cards generally each contain their own crystal clocks, which cannot be adjusted to accomplish synchronization with another clock).